package com.demo.java.OD201_250.OD208;

import java.util.*;

/**
 * @author bug菌
 * @Source 公众号：猿圈奇妙屋
 * @des： 【吃火锅】问题
 * @url： https://blog.csdn.net/weixin_43970743/article/details/145907374
 */
public class OdMain {
    public static void main(String[] args) {
        // 使用Scanner读取输入
        try (Scanner s = new Scanner(System.in)) {
            // 读取一行输入，并用空格拆分成字符串数组
            String[] split = s.nextLine().split(" ");
            // 从拆分后的数组中获取n和m的值
            int n = Integer.parseInt(split[0]);  // n：顾客的数量
            int m = Integer.parseInt(split[1]);  // m：时间间隔

            // 创建两个数组，用于存储每个顾客的用餐时间总和和计数值
            int[] arrTime = new int[n];  // 存储每个顾客用餐的总时间
            int[] arrCount = new int[n]; // 存储每个顾客是否可以就餐的标记

            // 读取n个顾客的吃火锅信息
            for (int i = 0; i < n; ++i) {
                // 获取顾客的进店时间x和离开时间y
                int x = s.nextInt();  // 顾客的进店时间
                int y = s.nextInt();  // 顾客的离开时间

                // 计算顾客在火锅店的总用餐时间，并存入arrTime数组
                arrTime[i] = x + y;

                // 判断是否满足就餐条件：
                // 如果是第一个顾客，或者当前顾客的用餐时间大于前一个顾客的用餐时间 + m（时间间隔）
                if (i == 0 || arrTime[i] >= (arrTime[i - 1] + m)) {
                    // 记录该顾客可以吃火锅，arrCount[i] = 1表示该顾客满足条件
                    arrCount[i] = 1;
                }
            }

            // 输出所有顾客中符合条件的顾客数量，即arrCount数组中为1的个数
            System.out.println(Arrays.stream(arrCount).sum());
        }
    }
}
